# 硬解
# -*- coding:utf-8 -*-
'''
新增的回文子串只有两种情况：
每增加一个新的字符，判断以这个字符结尾，且长度为maxLen+1或者maxLen+2的子串是否为回文，如果是，更新。
只有两种回文的情况，以这个字符结尾 回文串+1 偶数+1就可以判断回文了
以这个字符结尾回文串+2 奇数要+2
'''
class Palindrome:
    def getLongestPalindrome(self, A, n):
        maxLen=1
        if A==A[::-1]:return n
        # i+1-2   i+1-1
        for i in range(n):
            if i-maxLen>=1 and A[i-maxLen-1:i+1]==A[i-maxLen-1:i+1][::-1]:
                maxLen+=2
                continue
            # 从第二位开始判断
            if i-maxLen>=0 and A[i-maxLen:i+1]==A[i-maxLen:i+1][::-1]:
                maxLen+=1
        return maxLen